1. СРЕДА РАЗРАБОТКИ ПРИЛОЖЕНИЙ NETBEANS
NetBeans IDE — свободная интегрированная среда разработки приложений (IDE) на языках программирования Java, Python, PHP, JavaScript, C, C++, и ряда других.
Проект NetBeans IDE поддерживается и спонсируется компанией Oracle, однако разработка NetBeans ведется независимым сообществом разработчиков-энтузиастов (NetBeans Community) и компанией NetBeans Org.
По качеству и возможностям последние версии NetBeans IDE не уступают лучшим коммерческим (платным) интегрированным средам разработки для языка Java, таким, как IntelliJ IDEA, поддерживая рефакторинг, профилирование, выделение синтаксических конструкций цветом, автодополнение набираемых конструкций на лету, множество предопределённых шаблонов кода и др.
Для разработки программ в среде NetBeans и для успешной инсталляции и работы самой среды NetBeans должен быть предварительно установлен Sun JDK или J2EE SDK подходящей версии. Среда разработки NetBeans поддерживает разработку для платформ J2SE и J2EE и для мобильных платформ J2ME.

РАБОЧАЯ ПАПКА ПРОЕКТОВ ПО-УМОЛЧАНИЮ:
C:\Documents and Settings\<ИМЯ_ПОЛЬЗОВАТЕЛЯ>\Мои документы\NetBeansProjects
ЗАПУСК ПРОГРАММЫ НА ВЫПОЛНЕНИЕ: Заходим в меню "Выполнить" - "Запустить проект" (F6)
СОХРАНЕНИЕ ПРОЕКТА: Заходим в меню "Файл" - "Закрыть проект" (Для закрытия необходимо предварительно выделить проект мышью в окне «Проекты»)
ЗАКРЫТИЕ ПРОЕКТА: Заходим в меню "Файл" - "Сохранить все" (Ctrl+Shift+S)
ОТКРЫТИЕ РАНЕЕ СОХРАНЕННОГО ПРОЕКТА: Заходим в меню "Файл" - "Открыть проект" (Ctrl+Shift+O)
НАСТРОЙКА КОНФИГУРАЦИИ ПРОЕКТА:
1) Заходим в меню "Выполнить" - "Установить конфигурацию проекта - Настроить"
2) Выбираем категорию «Выполнение» - Выбираем главный класс для запуска программы – «ОК»
ПОЛУЧЕНИЕ ГОТОВОГО ИСПОЛНЯЕМОГО JAR-ФАЙЛА:
1) Заходим в меню "Выполнить" - "Очистить и собрать проект" (Shift+F11)
2) Готовый jar-файл находится в папке "dist" проекта.
2. СОЗДАНИЕ НОВОГО
ПРОЕКТА С ГРАФИЧЕСКИМ ИНТЕРФЕЙСОМ
В СРЕДЕ NETBEANS
1) Заходим в меню "Файл" - "Создать проект "

2) Выбираем категорию "Java", тип проекта "Приложение Java"

3) Указываем имя проекта. Имя проекта необходимо задать по шаблону «TSN01_LAB1», где «TSN»-инициалы автора программы большими буквами, «01»-номер варианта (2 цифры), далее идет знак «_», слово «LAB» большими буквами и номер лабораторной работы. При необходимости указываем новый каталог для расположения проекта. Нажимаем кнопку «Готово».
Примечание: необходимо указать, что создавать главный класс не нужно, убрав соответствующую галочку, т.к. главный класс будет располагаться в окне.

4) Устанавливаем курсор мыши на «пакет по умолчанию», после этого нажимаем на этом пункте правую кнопку мыши. В появившемся контекстном меню выбираем «Новый» - «Форма JFrame».

5) Указываем имя класса (окна). Рекомендуется имя формы задавать по шаблону «Form1», где «Form» - означает, что это форма, первая буква большая, а «1» - номер формы в программе.
6) Далее, необходимо указать имя пакета. Имя пакета необходимо задать по шаблону «tsn01_lab1», где «tsn»-инициалы автора программы маленькими буквами, «01»-номер варианта (2 цифры), далее идет знак «.» (точка), слово «lab» маленькими буквами и номер лабораторной работы.
7) Нажимаем кнопку «Готово».

8) Выделяем в окне «Проекты» полученную форму «Form1». Простейшая программа из пустого окна готова.
9) Запускаем полученную программу: «Выполнить» - «Запустить проект» (F6).

10) Появиться окно для указания главного класса в программе. Необходимо выбрать класс и именем формы и нажать «ОК». После этого запустится программа.

3. ПРИМЕРЫ ПРОСТЕЙШИХ ПРОГРАММС ГРАФИЧЕСКИМ ИНТЕРФЕЙСОМ НА JAVA
3.1. Пример 1 - Деление двух цифр

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// Вычисление выражения
String a, b, c; // Строковые переменные
double z; // Вещественные переменные
double x, y; // Вещественные переменные
// int x, y; // Целочисленные переменные
a = jTextField1.getText(); // Получение значения из окна 1
b = jTextField2.getText(); // Получение значения из окна 2
try { // Начало защищенного блока
x = Double.parseDouble(a); // Преобразование текстового значения в вещественное
y = Double.parseDouble(b); // Преобразование текстового значения в вещественное
// x = Integer.parseInt(a); // Преобразование текстового значения в целочисленное
// y = Integer.parseInt(b); // Преобразование текстового значения в целочисленное
z = x / y; // Вычисление выражения
// z = (double)( x) / (double) (y); // Вычисление выражения
// Проверка на: 0/0, z/0
if ((Double.isNaN(z) == true) || Double.isInfinite(z) == true) {
throw new Exception("error"); // Если нет решение то генерирование ошибки
}
// Описание формата вещественного числа
DecimalFormat df = new DecimalFormat("#0.00");
c = String.valueOf(df.format(z)); // Преобразование числа в строку
jTextField3.setText(c); // Вывод ответа в окошко
// jTextField3.setText(String.valueOf(new DecimalFormat("#0.00").format(z))); // Вывод ответа в окошко
} catch (Exception ee) { // Обработчики ошибок защищенного блока
Toolkit.getDefaultToolkit ().beep (); // Звуковой сигнал
jTextField3.setText("Неверные данные!"); // Обработка ошибки ввода или вычисления
} // Конец защищенного блока
}
3.2. Пример 2 – Расчет математического значения по условию

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// Решение примера
float x, b, d, y; // Вещественные переменные
try {
x = Float.parseFloat(jTextField1.getText()); // Получение данных
b = Float.parseFloat(jTextField2.getText()); // Получение данных
d = Float.parseFloat(jTextField3.getText()); // Получение данных
} catch (Exception ex) {
Toolkit.getDefaultToolkit().beep(); // Издаем звук
// Выводим окошко с сообщением об ошибке
JOptionPane.showMessageDialog(rootPane, "Ошибка введенных данных!", "Ошибка ввода",
JOptionPane.ERROR_MESSAGE);
jTextField1.requestFocus(); // Устанавливаем фокус на компонент
jLabel5.setText("В введенных значениях допущены ошибки.");
jTextField1.setText(""); // Очистка данных
jTextField2.setText(""); // Очистка данных
jTextField3.setText(""); // Очистка данных
return; // Выход из метода (процедуры)
}
if (x >= 8) { // Вычисление выражения
y = (x - 2) / (x * x);
} else {
y = b * b * d + 4 * x * x * x;
}
jLabel5.setText("ОТВЕТ: " + String.format("%.2f", y)); // Выдача ответа с двумя знаками после запятой
}
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
// Выход из программы
System.exit(0);
}
4. КОНСОЛЬНЫЕ ПРОГРАММЫ
Консольные программы на Java - это наиболее простой вид программ, не имеющих собственного графического интерфейса, весь ввод и вывод информации происходит в окне консоли. В настоящее время консольные программы не имеют особого практического применения, их заменяют программами с графическим интерфейсом.
Настройка консоли NetBeans на ввод/вывод русских символов
Если в консольной программе имеется ввод и/или вывод русских символов, то программа по-умолчанию не будет их корректно отображать, ни в консоли системы NetBeans, ни в консоли Windows. Дело в том, что:
1) по-умолчанию проект настроен на ввод/вывод символов в кодировке UTF-8;
2) окно консоли системы NetBeans настроено на ANSI-кодировку, неверно отображающую русские символы;
3) окно консоли терминала системы Windows корректно работает с русскими символами только при настройке консоли на кодировку «windows-1251» или «Cp866»…
Для включения в NetBeans поддержки UTF-8, и соответственно русских символов в консоли NetBeans, необходимо отредактировать конфигурационный файл «C:\Program Files\NetBeans 7.3.1\etc\netbeans.conf». Для этого нужно добавить в значение «netbeans_default_options» ключ «-J-Dfile.encoding=UTF-8» и перезапустить NetBeans.
Было:
netbeans_default_options="-J-client -J-Xss2m -J-Xms32m -J-XX:PermSize=32m -J-Dapple.laf.useScreenMenuBar=true -J-Dapple.awt.graphics.UseQuartz=true -J-Dsun.java2d.noddraw=true -J-Dsun.java2d.dpiaware=true -J-Dsun.zip.disableMemoryMapping=true"
Стало:
netbeans_default_options="-J-client -J-Dfile.encoding=UTF-8 -J-Xss2m -J-Xms32m -J-XX:PermSize=32m -J-Dapple.laf.useScreenMenuBar=true -J-Dapple.awt.graphics.UseQuartz=true -J-Dsun.java2d.noddraw=true -J-Dsun.java2d.dpiaware=true -J-Dsun.zip.disableMemoryMapping=true"
4.1. СОЗДАНИЕ КОНСОЛЬНОЙ ПРОГРАММЫ
Для создания консольной программы необходимо выбрать в меню опцию «Файл» - «Создать проект»:

Выбрать категорию «Java» - «Приложение Java»:

Указать имя проекта и необходимость создать главный класс. В главном классе и будет располагаться консольная программа.
Имя проекта необходимо задать так: «FIOnn_DEMO», где FIO - инициалы автора программы, nn – номер варианта, например «TSN01_DEMO».
Название главного класса необходимо задать так: «fionn.demo.App1», где fio - инициалы автора программы, nn – номер варианта, например «tsn01.demo.App1».

4.2. ПРОСТЕЙШАЯ КОНСОЛЬНАЯ ПРОГРАММА

package tsn01.demo;
import java.util.Scanner;
public class App1 {
public static void main(String[] args) {
// Простейшая консольная программа
Scanner sc = new Scanner(System.in); // Подключение к консоли
System.out.print("Как вас зовут: "); // Вывод вопроса
String n = sc.next(); // Ввод с консоли строкового значения
System.out.print("Сколько вам лет: "); // Вывод вопроса
int a = sc.nextInt();// Ввод с консоли целого значения
System.out.print("Ваш вес: "); // Вывод вопроса
float w = sc.nextFloat();// Ввод с консоли вещественного значения
System.out.println("Привет, " + n + "! Тебе " + a + " года, вес "
+ w + " кг.");
sc.close(); // Закрытие консоли
}
}
Запуск программы через командную строку Windows
java -Dfile.encoding=Cp866 -jar TSN01_DEMO.jar

Запуск программы через собственный bat-файл:
jar.bat TSN01_DEMO.jar
Содержимое файла «jar.bat»:
@echo off
chcp 866
java -jar %1
Данный файл можно сделать в обычном текстовом блокноте и поместить в общедоступную папку операционной системы, например, в папку «C:\WINDOWS».
4.3. ПРИМЕР
КОНСОЛЬНОЙ ПРОГРАММЫ
РЕШЕНИЯ КВАДРАТНОГО УРАВНЕНИЯ
package tsn01.demo;
import java.util.Scanner;
public class App1 {
public static void main(String[] args) {
// Вычисление квадратного уравнения
double a, b, c; // Входные переменные
double x1, x2; // Искомые значения
double d; // Дискриминант
try {
Scanner sc = new Scanner(System.in); //Создаем объект для ввода данных с консоли
System.out.println("Решение квадратного уравнения");
System.out.print("Введите a=");
a = sc.nextDouble(); // Ввод значения "a" с консоли
System.out.print("Введите b=");
b = sc.nextDouble(); // Ввод значения "b" с консоли
System.out.print("Введите c=");
c = sc.nextDouble(); // Ввод значения "c" с консоли
d = (b * b) - 4 * a * c; // Расчет дискриминанта
x1 = (-b + Math.sqrt(d)) / (2 * a); // Расчет "x1"
x2 = (-b - Math.sqrt(d)) / (2 * a); // Расчет "x2"
if (!(Double.isNaN(x1)) && (!Double.isInfinite(x1)) // Проверка существования значений
&& (!(Double.isNaN(x2)) && (!Double.isInfinite(x2)))) {
System.out.format("x1=%.3f%nx2= %.3f%n", x1, x2); // Вывод ответа
} else {
System.out.println("Нет решения!"); // Нет решения
}
sc.close(); // Закрываем ввод с консоли
} catch (Exception e) { // Ввели вместо цифр буквы
System.out.println("Неверные входные данные!");
}
}
}
